package com.witmore.neutron.ai.web.wechat.service;


import com.jk.mp.wx.response.WechatAuthAccessToken;

/**
 * 微信Token缓存服务接口
 * Author: 豆子高
 * Date: 2025/01/21
 */
public interface WechatTokenCacheService {

    /**
     * 缓存微信access_token
     *
     * @param openid 用户openid
     * @param accessToken 微信访问令牌对象
     */
    void cacheAccessToken(String openid, WechatAuthAccessToken accessToken);

    /**
     * 从缓存获取微信access_token
     *
     * @param openid 用户openid
     * @return 微信访问令牌对象，如果不存在或已过期返回null
     */
    WechatAuthAccessToken getCachedAccessToken(String openid);

    /**
     * 删除缓存的微信access_token
     *
     * @param openid 用户openid
     */
    void removeCachedAccessToken(String openid);

    /**
     * 检查缓存的token是否即将过期（剩余时间少于5分钟）
     *
     * @param openid 用户openid
     * @return true表示即将过期，false表示未过期或不存在
     */
    boolean isTokenExpiringSoon(String openid);
}
